GGGGLLLL____PPPPAAAACCCCKKKK____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____RRRRAAAATTTTEEEE____SSSSGGGGIIIIXXXX, and GGGGLLLL____PPPPAAAACCCCKKKK____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIIXXXX. Twelve
more affect the unpacking of pixel data _f_r_o_m memory:
GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____RRRRAAAATTTTEEEE____SSSSGGGGIIIIXXXX, and GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIIXXXX.
_p_a_r_a_m Specifies the value that _p_n_a_m_e is set to.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee sets pixel storage modes that affect the operation of
subsequent ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss and ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss as well as the unpacking of
polygon stipple patterns (see ggggllllPPPPoooollllyyyyggggoooonnnnSSSSttttiiiipppppppplllleeee), bitmaps (see ggggllllBBBBiiiittttmmmmaaaapppp),
and texture patterns (see ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDD,
ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee4444DDDDSSSSGGGGIIIISSSS, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDD, and
ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee4444DDDDSSSSGGGGIIIISSSS). Additionally, if the GGGGLLLL____AAAARRRRBBBB____iiiimmmmaaaaggggiiiinnnngggg extension is
supported, pixel storage modes affect convolution filters (see
ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDD, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDD, and ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDD),
color tables (see ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeee and ggggllllCCCCoooolllloooorrrrSSSSuuuubbbbTTTTaaaabbbblllleeee), and unpacking
histogram (see ggggllllHHHHiiiissssttttooooggggrrrraaaammmm) and minmax (see ggggllllMMMMiiiinnnnmmmmaaaaxxxx) data.
_p_n_a_m_e is a symbolic constant indicating the parameter to be set, and
_p_a_r_a_m is the new value. Twelve of the twenty-four storage parameters
affect how pixel data is returned to client memory. They are as follows:
If true, byte ordering for multibyte color components, depth
components, color indices, or stencil indices is reversed.
That is, if a four-byte component consists of bytes b , b , b ,
0 1 2
b , it is stored in memory as b , b , b , b if
3 3 2 1 0
GGGGLLLL____PPPPAAAACCCCKKKK____SSSSWWWWAAAAPPPP____BBBBYYYYTTTTEEEESSSS is true. GGGGLLLL____PPPPAAAACCCCKKKK____SSSSWWWWAAAAPPPP____BBBBYYYYTTTTEEEESSSS has no effect
on the memory order of components within a pixel, only on the
order of bytes within components or indices. For example, the
Specifies the subsample conversion rate that is applied to
packed pixel stores. The accepted _p_a_r_a_m values are
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444444444444444____SSSSGGGGIIIIXXXX, GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____2222444422224444____SSSSGGGGIIIIXXXX, and
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444222244442222____SSSSGGGGIIIIXXXX. When set to other than the
default GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444444444444444____SSSSGGGGIIIIXXXX value, RGB and RGBA pixel
groups are sampled to produce two-value packed pixel groups.
The width argument to the pixel routine must be a multiple of 2
pixels. The red, green, and blue components of the pixel are
sampled in the order specified by the destination format. When
a 4-component format is specified, the alpha component is
ignored. Subsampled pixel pairs are packed as follows:
ggggllllBBBBiiiittttmmmmaaaapppp, and ggggllllPPPPoooollllyyyyggggoooonnnnSSSSttttiiiipppppppplllleeee.
Additionally, if the GGGGLLLL____AAAARRRRBBBB____iiiimmmmaaaaggggiiiinnnngggg extension is supported, ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeee,
ggggllllCCCCoooolllloooorrrrSSSSuuuubbbbTTTTaaaabbbblllleeee, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDD, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDD, and
ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDD. They are as follows:
If greater than 0, GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____HHHHEEEEIIIIGGGGHHHHTTTT defines the number of
pixels in an image of a three-dimensional texture volume, where an
``image'' consists of all pixels sharing the same third dimension
index. If the first pixel of an image is placed at location p in
memory, then the location of the first pixel of the next image is
obtained by skipping
(
| nlh s _> a
k = |
a_| snlh____| s < a
|
s| a |
(
components or indices, where n is the number of components or
indices in a pixel, l is the number of pixels in a row
(GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRROOOOWWWW____LLLLEEEENNNNGGGGTTTTHHHH if it is greater than 0, the width argument to
ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDD otherwise), h is the number of rows in an image
(GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____HHHHEEEEIIIIGGGGHHHHTTTT if it is greater than 0, the height argument
to ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDD otherwise), a is the value of GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____AAAALLLLIIIIGGGGNNNNMMMMEEEENNNNTTTT,
and s is the size, in bytes, of a single component (if a<s, then it
is as if a = s).
The word _c_o_m_p_o_n_e_n_t in this description refers to the nonindex values
red, green, blue, alpha, and depth. Storage format GGGGLLLL____RRRRGGGGBBBB, for
example, has three components per pixel: first red, then green, and
and GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____VVVVOOOOLLLLUUUUMMMMEEEESSSS____SSSSGGGGIIIISSSS
These values are provided as a convenience to the programmer; they
provide no functionality that cannot be duplicated by incrementing
the pointer passed to ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD, ggggllllBBBBiiiittttmmmmaaaapppp, or ggggllllPPPPoooollllyyyyggggoooonnnnSSSSttttiiiipppppppplllleeee.
Setting GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____PPPPIIIIXXXXEEEELLLLSSSS to i is equivalent to incrementing the
pointer by in components or indices, where n is the number of
components or indices in each pixel. Setting GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____RRRROOOOWWWWSSSS to
j is equivalent to incrementing the pointer by jk components or
indices, where k is the number of components or indices per row, as
just computed in the GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRROOOOWWWW____LLLLEEEENNNNGGGGTTTTHHHH section. Setting
GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____IIIIMMMMAAAAGGGGEEEESSSS to k is equivalent to incrementing the pointer
by kp, where p is the number of components or indices per image, as
computed in the GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____HHHHEEEEIIIIGGGGHHHHTTTT section. Setting
GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____VVVVOOOOLLLLUUUUMMMMEEEESSSS____SSSSGGGGIIIISSSS to k is equivalent to incrementing the
pointer by kp, where p is the number of components or indices per
volume, as computed in the GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____DDDDEEEEPPPPTTTTHHHH____SSSSGGGGIIIISSSS section.
Specifies the subsample conversion rate that is applied when
unpacking pixel data. The accepted _p_a_r_a_m values are
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444444444444444____SSSSGGGGIIIIXXXX, GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____2222444422224444____SSSSGGGGIIIIXXXX, and
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444222244442222____SSSSGGGGIIIIXXXX. When set to other than the default
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____4444444444444444____SSSSGGGGIIIIXXXX value, pixel groups are upsampled to
produce RGB or RGBA component groups, depending on the source
format. The packed subsampled source pixel is composed of two
values, and the width argument to the pixel routine must be a
multiple of 2 pixels. The unpacked pixel group is composed of R, G,
and B components in the order specified by the format. When a 4-
component format is specified, an alpha component is added to the
unpacked group and set to the maximum clamped value of the source
type. Pixel group values are also affected by the state of the
GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIIXXXX mode. Subsampled pixel pairs are unpacked as
Specifies the resample mode in effect when an unpack subsample rate
is being applied. The accepted _p_a_r_a_m values are
GGGGLLLL____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____RRRREEEEPPPPLLLLIIIICCCCAAAATTTTEEEE____SSSSGGGGIIIIXXXX and GGGGLLLL____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____ZZZZEEEERRRROOOO____FFFFIIIILLLLLLLL____SSSSGGGGIIIIXXXX. When
GGGGLLLL____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____ZZZZEEEERRRROOOO____FFFFIIIILLLLLLLL____SSSSGGGGIIIIXXXX is selected, the lower-rate sampled
components in the second group of each pixel pair are assigned a
zero value. Otherwise the lower-rate components replicate
corresponding values from the preceding unpacked group.
The following table gives the type, initial value, and range of valid
values for each storage parameter that can be set with ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee.
ggggllllBBBBiiiittttmmmmaaaapppp, or ggggllllPPPPoooollllyyyyggggoooonnnnSSSSttttiiiipppppppplllleeee is placed in a display list control the
interpretation of memory data. Likewise, if the GGGGLLLL____AAAARRRRBBBB____iiiimmmmaaaaggggiiiinnnngggg extension
is supported, the pixel storage modes in effect when ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeee,
ggggllllCCCCoooolllloooorrrrSSSSuuuubbbbTTTTaaaabbbblllleeee, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDD, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDD, of
ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDD is placed in a display list control the
intrepretation of memory data. The pixel storage modes in effect when a
display list is executed are not significant.
Pixel storage modes are client state and must be pushed and restored
using
ggggllllPPPPuuuusssshhhhCCCClllliiiieeeennnnttttAAAAttttttttrrrriiiibbbb and ggggllllPPPPooooppppCCCClllliiiieeeennnnttttAAAAttttttttrrrriiiibbbb.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _p_n_a_m_e is not an accepted value.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if a negative row length, pixel skip, or
row skip value is specified, or if alignment is specified as other than
1, 2, 4, or 8, or if subsample rate or resample is specified with a value
that is not accepted.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee is executed between the
execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSWWWWAAAAPPPP____BBBBYYYYTTTTEEEESSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____LLLLSSSSBBBB____FFFFIIIIRRRRSSSSTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____RRRROOOOWWWW____LLLLEEEENNNNGGGGTTTTHHHH
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____HHHHEEEEIIIIGGGGHHHHTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____DDDDEEEEPPPPTTTTHHHH____SSSSGGGGIIIISSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____RRRROOOOWWWWSSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____PPPPIIIIXXXXEEEELLLLSSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____IIIIMMMMAAAAGGGGEEEESSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____VVVVOOOOLLLLSSSSUUUUMMMMEEEE____SSSSGGGGIIIISSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____AAAALLLLIIIIGGGGNNNNMMMMEEEENNNNTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____RRRRAAAATTTTEEEE____SSSSGGGGIIIIXXXX
ggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPAAAACCCCKKKK____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIIXXXX
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSWWWWAAAAPPPP____BBBBYYYYTTTTEEEESSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____LLLLSSSSBBBB____FFFFIIIIRRRRSSSSTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRROOOOWWWW____LLLLEEEENNNNGGGGTTTTHHHH
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____HHHHEEEEIIIIGGGGHHHHTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____IIIIMMMMAAAAGGGGEEEE____DDDDEEEEPPPPTTTTHHHH____SSSSGGGGIIIISSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____RRRROOOOWWWWSSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____PPPPIIIIXXXXEEEELLLLSSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____IIIIMMMMAAAAGGGGEEEESSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSKKKKIIIIPPPP____VVVVOOOOLLLLUUUUMMMMEEEESSSS____SSSSGGGGIIIISSSS
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____AAAALLLLIIIIGGGGNNNNMMMMEEEENNNNTTTT
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____RRRRAAAATTTTEEEE____SSSSGGGGIIIIXXXX
ggggllllGGGGeeeetttt with argument GGGGLLLL____UUUUNNNNPPPPAAAACCCCKKKK____RRRREEEESSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIIXXXX
The SSSSGGGGIIIIXXXX____ssssuuuubbbbssssaaaammmmpppplllleeee and SSSSGGGGIIIIXXXX____rrrreeeessssaaaammmmpppplllleeee extensions are supported only on
OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems. Applying the GGGGLLLL____PPPPIIIIXXXXEEEELLLL____SSSSUUUUBBBBSSSSAAAAMMMMPPPPLLLLEEEE____2222444422224444____SSSSGGGGIIIIXXXX
subsample rate is accelerated for direct immmediate mode transfers when
the format is GGGGLLLL____RRRRGGGGBBBB or GGGGLLLL____RRRRGGGGBBBBAAAA, and the type is GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE or